1. Field of the Invention
The present invention generally relates to a decoding method and apparatus in a mobile communication system. More particularly, the present invention relates to a method and apparatus for decoding inner and outer codes in a mobile communication system that can decode inner and outer codes at low power and high speed in the mobile communication system based on code division multiple access (CDMA) using a Reed-Solomon (RS) code as an outer code, and can simplify a structure of a receiving terminal.
2. Description of the Related Art
With the development of communication technology, mobile communication systems have developed from voice service systems into data service systems. These mobile communication systems can provide broadcasting services as well as various data services. In the Third Generation Partnership Project 2 (3GPP2), various standardization tasks for broadcasting services based on code division multiple access (CDMA) are currently being conducted. According to CDMA2000 1x Revision D of various standards proposed for broadcasting services in 3GPP2, a broadcasting service is called broadcast and multicast service (BCMCS). In addition to CDMA2000 1x Revision D, standards for providing broadcasting services are being created also in relation to the BCMCS of High Rate Packet Data (HRPD) Revision A for a synchronous CDMA system.
Hereinafter, the CDMA-based BCMCS service associated with the CDMA2000 1x Revision D and HRPD Revision A is referred to as the broadcasting service.
The broadcasting service is configured to transmit broadcasting data in a frame unit according to time division multiplexing (TDM). This broadcasting service can use an inner code such as a convolution code or turbo code for channel coding, and an outer code such as a Reed-Solomon (RS) code serving as a well-known error correction code. When the TDM is used to transmit the broadcasting data, a receiving terminal selectively receives only minimum frames, thereby improving reception efficiency. To avoid a transmission error of successively generated broadcasting data, an RS code is used. This RS code is defined in the CDMA2000 1x Revision D specification.
According to the CDMA2000 1x Revision D specification, for example, RS coding is performed using a sub-buffer for the broadcasting service as illustrated in FIG. 1. For example, the RS coding can select one of the coding rates 11/16, 12/16, 13/16, and 14/16, and can be used in RC5/115.2 kbps/20 ms mode. In this case, an inner code structure is defined in the CDMA2000 1x Revision D specification as illustrated in FIG. 2.
Now, a conventional process for encoding and decoding RS codes will be described briefly.
FIG. 1 is a block diagram illustrating an internal structure of a conventional RS encoder. The conventional RS coding process will be described with reference to FIG. 1.
In FIG. 1, channel bits are input to a demultiplexer 110 for a predetermined time according to a predetermined RS coding rate. Then, a demultiplexer (DEMUX) 110 demultiplexes the input channel bits and outputs the demultiplexed channel bits to outer encoders 120. The outer encoders 120 encode the channel bits stored in a plurality of sub-buffers (not illustrated) into RS codes. A multiplexer (MUX) 130 multiplexes RS coded symbols stored in the sub-buffers, and outputs a result of the multiplexing to an inner encoder (not illustrated) such as a channel encoder.
In a front stage of the inner encoder, a frame quality indicator for checking an error is provided. A cyclic redundancy checking (CRC) information bit is inserted into the RS coded symbols. An RS decoder to be described below detects an error of each received frame using the CRC information bit, and erases symbols of an erroneous frame.
The RS code is defined in a well-known Galois field. Assuming that the Galois field is GF (=28), the number of symbols of one code word is n, and the number of systematic symbols containing broadcasting data among the n symbols is k, the n and k values are defined by (n,k)∈{(16,11),(16,12),(16,13),(16,14)}. FIG. 2 illustrates an example of a sub-buffer used for RS coding. A symbol and frame structure used for RS coding will be described with reference to FIG. 2.
In FIG. 2, each row is a frame configured by, for example, 2280 bits. Each frame undergoes channel coding through an inner encoder. In FIG. 2, k higher frames are configured by the input channel bits as illustrated in FIG. 1, i.e., systematic symbols, and n−k lower frames are configured by parity symbols generated from the RS coding. An RS code is configured by, for example, an 8-bit symbol. As indicated by a hatched area in a column direction of FIG. 2, n−k parity symbols are generated on the basis of k systematic symbols according to the RS coding.
In this case, 2280 bits configure each frame such that the n−k parity frames are full. The RS coding is performed a total number of 285 (=2280/8) times. When 16 frames are filled in the sub-buffer, each frame is encoded according to inner coding after a CRC information bit is added as illustrated in FIG. 2.
Upon receiving broadcasting data for the BCMCS, a receiving terminal decodes channel bits through an inverse process of outer and inner coding performed by a transmitting terminal. In this case, an error of each frame is detected from a receiving signal undergoing inner decoding such as channel decoding through CRC information. Symbols of an error frame are erased. The RS decoder recovers original signals from decoded frames using erasure information of an error frame.
A conventional decoding process for RS codes is divided into three processes, i.e., a process for searching for an error position of a frame, a process for obtaining an error value, and a process for correcting an error. In the receiving terminal, the RS decoder can correct all frame errors under a condition as shown in Equation (1).s+2e≦n−k  Equation (1)
In Equation (1), s denotes the number of erasure symbols to be erased due to an error detected from a result of CRC, e denotes the number of error symbols missing from the CRC result, n denotes the number of symbols configuring one code word indicated by the hatched area in the column direction of FIG. 2, i.e., RS code length, and k denotes the number of systematic symbols containing broadcasting data. In this case, an error symbol is a frame symbol, determined to be ‘Good’ from the CRC result, in which an error has actually occurred. An erasure symbol corresponds to a case where an error symbol position is identified, but an error bit value is not identified. An error symbol corresponds to a case where an error symbol position and an error bit value are not both identified. In Equation (1), it can be found that erasure symbol correction capability is twice error symbol correction capability.
FIG. 3 is a block diagram illustrating an internal structure of a conventional RS decoder. A process for decoding RS codes will be described with reference to FIG. 3.
First, broadcasting data received by a mobile terminal through a wireless network undergoes a demodulating process and an inner decoding process of convolution decoding or turbo decoding and CRC. Then, input symbols of the broadcasting data are provided to an erasure symbol detector 310 of FIG. 3. The erasure symbol detector 310 detects a position of an erasure symbol from the input symbols on the basis of a CRC result, and outputs position information of an erasure symbol to an erasure polynomial generator 320. The erasure polynomial generator 320 generates a predetermined erasure polynomial for designating a position of an erasure symbol in the input symbols, and outputs the generated erasure polynomial to an error polynomial generator 330.
The error polynomial generator 330 generates a predetermined error polynomial for searching for a position of an error symbol from the input symbols, and provides the generated error polynomial to an error position searcher 340. The error polynomial is generated which includes the erasure polynomial. The error position searcher 340 searches for an error symbol missing from the CRC result using the error polynomial, and provides position information of erasure and error symbols to an error corrector 360. When an error symbol is not present, the error position searcher 340 provides only the position information of erasure symbols to the error corrector 360.
The error polynomial generator 330 provides the error polynomial to an error magnitude searcher 350. The error magnitude searcher 350 obtains error magnitudes of erasure and error symbols using the error polynomial, and outputs information of error magnitudes to the error corrector 360. An error magnitude indicates an error bit stream obtained by estimating a difference between the input symbols and originally transmitted symbols. The error bit stream is obtained using parity symbols added at an RS coding time.
The error corrector 360 outputs systematic symbols from which all errors of the input symbols have been corrected on the basis of the position information of the erasure and error symbols and the error magnitude information, and completes the process for decoding the RS codes.
The conventional RS decoding process includes a process for searching for error symbols missing from the CRC result as well as a process for searching for erasure symbols. Algorithms for searching for positions of the erasure and error symbols are a Berlekamp-Massey algorithm and a modified Euclidean distance algorithm. However, these algorithms have problems in that an internal structure of an RS decoder is complex and both inner and outer decoding operations on error symbols must be performed, resulting in increasing the amount of power consumption of a receiver.
Therefore a need exists for a process for searching for error symbols missing from the CRC result as well as a process for searching for erasure symbols using low power consumption and high speed.